<?php

namespace app\admin\controller;

use think\Controller;
use think\helper\Time;
use think\Request;

class User extends Base
{
    public function index()
    {
        // 遍历出数据库中的用户名
        $data = \app\admin\model\User::select();

        return view("index",[
            'data' => $data
        ]);
    }

    // 添加方法
    public function add()
    {
        return view('add');
    }

    // 插入到数据库中
    public function save(Request $request)
    {
        $data = $request->param();
        // 表单验证
        $rule = [
            'username' => 'require|token',
            'password' => 'require',
            'confirmpwd' => 'require',
            'name' => 'require',
            'tel' => 'require',
            'status' => 'require'
        ];

        $msg = [
            'username.require' => '不可以为空',
            'username.token' => '重复提交了',
            'password.require' => '不可以为空',
            'confirmpwd.require' => '不可以为空',
            'name.require' => '不可以为空',
            'tel.require' => '不可以为空',
            'status.require' => '不可以为空',
        ];

        $validate = new \think\Validate($rule,$msg);

        if($validate->check($data)){
            $error = $validate->getError();
            $this->error($error);
            die;
        }

        $name = $data['username'];
        $pwd = $data['password'];
        $pwd1 = $data['confirmpwd'];

        // 判断新注册的用户数据库中是否存在
        $user = \app\admin\model\User::where('username',$name)->select();

        if($user){
            $this->error("请重新换一个名字,重名了亲","add");
        }elseif($pwd != $pwd1){
            $this->error("密码不一致",'add');
            return;
        }
        $data['adddate'] =  date('Y-m-d H:i:s');
        // 用户添加成功
        \app\admin\model\User::create($data,true);

        $this->success("添加成功，请稍等",'index');
    }

    // 修改方法
    public function edit($id){

        if(!preg_match('/^\d+$/',$id)){

            $this->error("不是数字");
        }

        // 获取数据库中的内容传递到前台
        $data = \app\admin\model\User::where('id',$id)->find();
        return view("edit",['data'=>$data]);
    }

    public function update(Request $request,int $id)
    {
        $data = $request->param();

        if(empty($data)){
            return $this->error('错误','admin/user/add');
        }

        \app\admin\model\User::where('id',$id)->strict(false)->update($data);

        return $this->success("修改成功",'admin/user/index');
    }

    public function delete(int $id){

        if(empty($id))
        {
            return $this->error("出错了",'admin/user/index');
        }

        \app\admin\model\User::strict(false)->where('id',$id)->delete();

        return $this->success("删除成功",'admin/user/index');
    }
}
